home *** CD-ROM | disk | FTP | other *** search
- case string ?in? patList body ?patList body ...?
-
- case string ?in? {patList body ?patList body ...?}
- Match string against each of the patList arguments in
- order. If one matches, then evaluate the following
- body argument by passing it recursively to the Tcl
- interpreter, and return the result of that evaluation.
- Each patList argument consists of a single pattern or
- list of patterns. Each pattern may contain any of the
- wild-cards described under string match. If a patList
- argument is default, the corresponding body will be
- evaluated if no patList matches string. If no patList
- argument matches string and no default is given, then
- the case command returns an empty string.
-
- Two syntaxes are provided. The first uses a separate
- argument for each of the patterns and commands; this
- form is convenient if substitutions are desired on some
- of the patterns or commands. The second form places
- all of the patterns and commands together into a single
- argument; the argument must have proper list structure,
- with the elements of the list being the patterns and
- commands. The second form makes it easy to construct
- multi-line case commands, since the braces around the
- whole list make it unnecessary to include a backslash
- at the end of each line. Since the patList arguments
- are in braces in the second form, no command or
- variable substitutions are performed on them; this
- makes the behavior of the second form different than
- the first form in some cases.
-
- Below are some examples of case commands:
-
- case abc in {a b} {format 1} default {format 2} a* {format 3}
-
- will return 3,
-
- case a in {
- {a b} {format 1}
- default {format 2}
- a* {format 3}
- }
-
- will return 1, and
-
- case xyz {
- {a b}
- {format 1}
- default
- {format 2}
- a*
- {format 3}
- }
-
- will return 2.
-
-